package 命令模式;

// 在这个示例中，我们使用命令模式创建了两种具体的命令：打开电灯和关闭电灯。
// 遥控器可以设置不同的命令，然后按下按钮触发相应的操作。
// 这样，命令发送者（遥控器）和命令接收者（电灯）之间实现了解耦。
public class CommandPatternExample {
    public static void main(String[] args) {
        Light livingRoomLight = new Light();
        
        LightOnCommand livingRoomLightOn = new LightOnCommand(livingRoomLight);
        LightOffCommand livingRoomLightOff = new LightOffCommand(livingRoomLight);
        
        RemoteControl remote = new RemoteControl();
        
        remote.setCommand(livingRoomLightOn);
        remote.pressButton(); // 打开电灯
        
        remote.setCommand(livingRoomLightOff);
        remote.pressButton(); // 关闭电灯
    }
}
